//
//  FirstViewController.m
//  07-Delegate.Block
//
//  Created by Snow on 16/7/22.
//  Copyright © 2016年 Snow. All rights reserved.
//

#import "FirstViewController.h"
#import "SecondViewController.h"
@interface FirstViewController ()<SecondVCPassValue>
@property (nonatomic, strong) UILabel *label;
@end

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //关于BaseViewController
    //是基类的ViewController
    //在这个Controller中, 进行统一的修改
    //例如 统一修改坐标系 统一修改背景颜色
    //统一修改navigationBar的Bartintcolor tintColor 等
    
    
    //注意坐标问题
    self.navigationController.navigationBar.translucent = NO;
    self.label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 30)];
    self.label.backgroundColor = [UIColor redColor];
    self.label.text = @"哦呵呵呵";
    [self.view addSubview:self.label];
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(20, 200, 100, 30);
    [button setTitle:@"点我跳下一页" forState:UIControlStateNormal];
    button.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:button];
    
    [button addTarget:self action:@selector(handleButton:) forControlEvents:UIControlEventTouchUpInside];
}


//界面通信
//1.属性传值 一般用于从前往后传值 将想要传递的值, 作为后一个页面的属性, 并通过该属性进行一系列操作
// 例如 将第一页面的titlelabel.text传递给第二页面的UItextfield的text;
//           push↓                         ⬇️
// 先取到titlelabel.text 给第二页面的属性 titleNSString 然后第二页面去使用这个属性

//从后往前传
//取到第二页面的textField.text
//pop到第一页面 设置titletextField 去使用 - (void)viewwillapear方法调用

//2.协议传值
//第二页面给第一页面传值
//给第二页面声明协议
//1.决定要在second中声明协议
//2.声明delegate @property id <XXX>delegate
//3.在哪签订协议(只要可以拿到对象, 就可以签订协议)
//4.XXX.delegate = self;
//5.签订完协议 会报黄 为实现协议方法
//6.触发协议 在第一页面 并加上判断


//3.关于navigation中的控制器的释放
//navigation中ViewController数组 数组对对象有引用计数 + 1
// 当controller入栈时 则被加入数组中 引用计数加一
//只要不出站 就不会释放
//A push 到 B
//B pop 回 A  B出栈 对应释放
//
- (void)handleButton:(UIButton *)button
{
    SecondViewController *second = [[SecondViewController alloc] init];
#warning 指定代理人
    second.delegate = self;
    second.titleNsstring = self.label.text;
    [self.navigationController pushViewController:second animated:YES];
    
}
//从后往前传
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
//    _label.text = self.titleTextfield;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}
#warning  实现协议方法
- (void)passValue:(NSString *)string
{
    _label.text = string;
    NSLog(@"%@", string);
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
